home *** CD-ROM | disk | FTP | other *** search
/ Network CD 1 / Network CD.iso / amospd / 491-500 / apd500 / karl_roberts / blitter_scroll.amos / blitter_scroll.amosSourceCode < prev    next >
AMOS Source Code  |  1986-08-03  |  4KB  |  95 lines

  1. '**********************************************************    
  2. '* INNOVATIONS 1993                                       *  
  3. '*                                                        *  
  4. '* Title: Blitter scroll with speed, pause, extra scrolls *
  5. '*        distortion, and reflection ideas                *
  6. '*                                                        *  
  7. '* Code : Icky                                            *  
  8. '*                                                        *  
  9. '* I've put some extra lines, of code in so take out the  *  
  10. '* comment '* and have a mess around...........           *  
  11. '*                                                        *  
  12. '******************************************************** *  
  13. Screen Open 1,340,260,2,Lowres
  14. Curs Off : Flash Off : Cls 0 : Hide On 
  15. Colour 1,$FFF : Autoback 0
  16. Screen Open 0,370,30,2,Lowres
  17. Curs Off : Flash Off : Cls 0 : Hide On 
  18. Autoback 0
  19. Palette $4,$F
  20. Screen Display 0,,274,,
  21. Channel 0 To Screen Display 0
  22. Amal 0,"A:M 0,-260,260;M 0,260,260; J A"
  23. Dreg(0)=Execall(-132)
  24. _SCROLL_ROUTINE[0,0,0,14,2]
  25. Procedure _SCROLL_ROUTINE[SCRN,X,Y,SIZE,SPEED]
  26.    Set Rainbow 0,1,4097,"","","(1,31,1)"
  27.    Rainbow 0,2,293,14
  28.    Set Rainbow 1,1,4097,"(1,31,1)","(1,31,1)","(1,31,1)"
  29.    Rainbow 1,0,274,16
  30.    SPEED=6
  31.    T$="&eA SIMPLE BLITTER SCROLL WITHOUT USEING THE SLOW DEF SCROLL"
  32.    T$=T$+" AND NOT JERKY EITHER. IT DEPENDS WHAT YOU DO TO IT. HARDWARE"
  33.    T$=T$+" IS BETTER AND FINALLY GETTING AMAL TO DO IT MAKES ALL THE DIFFERENCE"
  34.    T$=T$+"^AFTER A WEEK OF SCRATCHING MY HEAD ITS DONE. BUT ITS HARDER USING"
  35.    T$=T$+" THE BLITTER, BECAUSE THE RESULTS TEND TO BE MORE JERKIER. WHEN YOU"
  36.    T$=T$+" REALISE SIXTEEN SCROLLS ARE ON ONE SCREEN AND USING SEVERAL SCREENS"
  37.    T$=T$+" IE SCREEN CLONES THEN THIS AINT BAD. OH YES YOU COULD FIDDLE THE"
  38.    T$=T$+" THE SPEED OF EACH SCROLL LINE AS WELL....................."
  39.    T$=T$+"LETS SLOW DOWNbcdefgYEHAAA           STOP       ab"
  40.    COUNT=1
  41.    Repeat 
  42.       Inc CNT : If CNT>(17/SPEED)+1 Then Gosub NEWLET
  43.       Screen Copy SCRN,X,Y,370,Y+SIZE To SCRN,-SPEED,Y
  44.       'STRETCH text with Screen COPIES - take out ' to see 
  45.       'although the reflection makes this a bit jerky
  46.       '                 Screen Copy SCRN,Q-1,Y,X+320,Y+SIZE To SCRN,-SPEED+Q,Y 
  47.       '                 Screen Copy SCRN,Q-22,Y,X+300,Y+SIZE To SCRN,-SPEED+Q-21,Y 
  48.       '                 Screen Copy SCRN,Q-42,Y,X+280,Y+SIZE To SCRN,-SPEED+Q-41,Y 
  49.       '                 Screen Copy SCRN,Q-62,Y,X+260,Y+SIZE To SCRN,-SPEED+Q-61,Y 
  50.       '* How about his for a reflection
  51.       '* although there is a better way, of copying direct to  
  52.       '* memeory using the copper, its a bit too complicated,
  53.       '* so well stay with this easy method, will show you this
  54.       '* in the next demo, Im doing, it takes no extra processor time
  55.       '* unlike the next line of code........... 
  56.       '* put in next line for an okayish reflection  
  57.       '* Get Bob 0,1,0,0 To 340,14 : Bob 1,-SPEED,30,1+$4000 : Wait Vbl  
  58.       '* however if you do, block out the next 5 lines 
  59.            Screen Copy 0,0,0,350,16 To 1,0,0
  60.            Screen Copy 1,0,0,350,16 To 1,0,18
  61.            Screen Copy 1,0,0,350,32 To 1,0,34 : Wait Vbl 
  62.            Screen Copy 1,0,0,350,66 To 1,0,70
  63.            Screen Copy 1,0,0,340,128 To 1,0,138
  64.       '* line above slams some extra copies to screen, screen clone is 
  65.       '* possible better but limited on number of screens, try 
  66.       '* putting an indiviual line at a specific screen position and 
  67.       '* moving it at a different speed..............  
  68.    Until Fire(0)
  69.    Dreg(0)=Execall(-138)
  70.    Fade 2 : Wait 10 : Edit 
  71.    Pop Proc
  72.    NEWLET:
  73.    TEX$=Mid$(T$,PNR,1)
  74.    T=Asc(TEX$)-64
  75.    If TEX$=" " Then T=40
  76.    If TEX$="." Then T=27
  77.    If TEX$="?" Then T=28
  78.    If TEX$="," Then T=39
  79.    If TEX$="^" Then T=40 : Rainbow Del 0 : Rainbow Del 1 : Screen To Back 0
  80.    If TEX$="&" Then T=40 : Screen To Front 0
  81.    '/* Use lowercase letters to specify speed */
  82.    '/* "a" pauses text, for 100 */
  83.    If TEX$="a" Then T=40 : Wait 100
  84.    If TEX$="b" Then T=40 : SPEED=1
  85.    If TEX$="c" Then T=40 : SPEED=2
  86.    If TEX$="d" Then T=40 : SPEED=3
  87.    If TEX$="e" Then T=40 : SPEED=4
  88.    If TEX$="f" Then T=40 : SPEED=5
  89.    If TEX$="g" Then T=40 : SPEED=6
  90.    '/* simple Put these chacracters in your message string to change the speeds */
  91.    Paste Icon 340,Y,T
  92.    Inc PNR : If PNR>Len(T$) Then PNR=1
  93.    CNT=1
  94.    Return 
  95. End Proc